﻿using MotorLibrary.Model;
using MotorLibrary.Repository.DTO;
using System;

namespace MotorLibrary.Repository.Converter
{
    public class EjecucionConverter : IEjecucionConverter
    {
        private IEndpointConverter _endpointConverter;
        public EjecucionConverter(IEndpointConverter endpointConverter)
        {
            this._endpointConverter = endpointConverter;
        }

        public Ejecucion DtoToEntity(EjecucionDTO dto)
        {
            Ejecucion resultado;

            if (dto == null)
            {
                resultado = null;
            }
            else
            {
                resultado = new Ejecucion();

                resultado.ID = dto.ID;
                resultado.EndpointID = dto.EndpointID;
                resultado.FechaEjecucion = dto.FechaEjecucion;
                resultado.Tamano = dto.Tamano;
                resultado.RutaDescarga = dto.RutaDescarga;
                resultado.Endpoint = _endpointConverter.DtoToEntity(dto.Endpoint);
            }

            return resultado;
        }

        public EjecucionDTO EntityToDto(Ejecucion entity)
        {
            EjecucionDTO resultado;

            if (entity == null)
            {
                resultado = null;
            }
            else
            {
                resultado = new EjecucionDTO();

                resultado.ID = entity.ID;
                resultado.EndpointID = entity.EndpointID;
                resultado.FechaEjecucion = entity.FechaEjecucion;
                resultado.Tamano = entity.Tamano;
                resultado.RutaDescarga = entity.RutaDescarga;
                resultado.Endpoint = _endpointConverter.EntityToDto(entity.Endpoint);
            }

            return resultado;
        }
    }
}